class Solution {
public:
    int numSubarrayProductLessThanK(vector<int>& nums, int k) {
        int ans=0;
        int n=nums.size();
        int sum=1;
        int i=0;
        int j=-1;
        while(j<n-1)
        {
            j++;
            sum*=nums[j];
            while(i<=j && sum>=k)
            {
                sum/=nums[i];
                i+=1;
            }
            ans+=j-i+1;
            //每枚举一个右端点j，如果当前子数组元素乘积 sum 大于等于 k，那么我们右移左端点i 直到满足当前子数组元素乘积小于 k 或者 i>j，那么元素乘积小于 k 的子数组数目为 j−i+1。返回所有数目之和
        }
        return ans;

    }
};